#ifndef __MATRIX_KEYS__
#define __MATRIX_KEYS__

#include "gd32f4xx.h"

//PE2
#define KCOL1_RCU_GPIO    RCU_GPIOE
#define KCOL1_GPIO        GPIOE
#define KCOL1_PIN         GPIO_PIN_2
//PE4
#define KCOL2_RCU_GPIO    RCU_GPIOE
#define KCOL2_GPIO        GPIOE
#define KCOL2_PIN         GPIO_PIN_4
//PE5
#define KCOL3_RCU_GPIO    RCU_GPIOE
#define KCOL3_GPIO        GPIOE
#define KCOL3_PIN         GPIO_PIN_5
//PE6
#define KCOL4_RCU_GPIO    RCU_GPIOE
#define KCOL4_GPIO        GPIOE
#define KCOL4_PIN         GPIO_PIN_6
//PG11
#define KROW1_RCU_GPIO    RCU_GPIOG
#define KROW1_GPIO        GPIOG
#define KROW1_PIN         GPIO_PIN_11
//PG11
#define KROW2_RCU_GPIO    RCU_GPIOG
#define KROW2_GPIO        GPIOG
#define KROW2_PIN         GPIO_PIN_12


#ifndef u8
#define u8 uint8_t
#endif

#ifndef u16
#define u16 uint16_t
#endif

#ifndef u32
#define u32 uint32_t
#endif

void matrix_keys_init();//push-pull mode
void matrix_keys_scan();    

extern void Keys_on_down(uint8_t key_row, uint8_t key_col);
extern void Keys_on_up(uint8_t key_row, uint8_t key_col);



#endif